package io;

import java.io.*;

/**
 * JAVA将流分为两类
 * 借点流和处理流
 * 节点流也称为低级流，是真实连接程序与另一端的管道。续写一定是建立在节点流的基础上
 * 进行的。比如文件流就是节点流。
 *
 * 处理流也称为高级流，是不能独立存在的，必须连接在其它流上，目的是当数据流经他时对
 * 数据进行某些加工处理，简化我们的同等操作
 *
 * 实际开发中我们经常会串联一组高级流并最终连接到低级流上，是的读写数据以流水线式的加工处理完成。这个操作称为“流的连接”
 *
 *
 * 缓冲流
 * Java.io.BufferedInputStream 和BufferedOutputStream
 *          缓冲输出流              缓冲输入流
 *缓冲流是一种高级流，作用是加快读取效率
 */

public class BOSDemo {
    public static void main(String[] args)throws IOException {
        FileInputStream fis = new FileInputStream("ppt.ppt");
        BufferedInputStream bis = new BufferedInputStream(fis);

        FileOutputStream fos = new FileOutputStream("ppt_cp.ppt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);

        int d;
        long start = System.currentTimeMillis();
        while ((d =bis.read())!=-1){
            bos.write(d);
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕，耗时："+(end-start)+"ms");

        bis.close();
        bos.close();

    }
}
